<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
  <head>    
    <title>Crear un archivo BMD/BDL</title>    
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <link href="../../styles.css" rel="stylesheet">
    <link rel="icon" href="../../images/icon.png">
	</head>
	<body>
    <div id="top">
      <h1>Crear un archivo BMD/BDL</h1> 
    </div>
		<div id="main">
      <h2>Contenido</h2>
      <div class="contents">
        <ol>
          <li><a href="#tools">Herramientas</a></li>
          <li><a href="#require">Requisitos</a></li>
          <li><a href="#basic">Conversi&oacute;n b&aacute;sica</a></li>
          <li><a href="#mat-and-tex">Adici&oacute;n de materiales y texturas</a></li>
          <li><a href="#rotate"><code>--rotate</code></a></li>
          <li><a href="#nosort"><code>--nosort</code></a></li>
          <li><a href="#other-flags">Otras opciones</a></li>
          <li><a href="#very-bright">El modelo es muy brillante en el juego</a></li>
        </ol>
      </div>
      <h2 id="tools">Herramientas</h2>
      <div class="contents">
        <ul>
          <li>SuperBMD</li>
          <li>Wine (para Linux)</li>
        </ul>
      </div>      
      <h2 id="require">Requisitos</h2>
      <div class="contents">
        <ul>
          <li><a href="tool2.html">j3dview</a></li>
          <li><a href="basic5.html">Como extraer los contenidos de un archivo BMD/BDL</a></li>
        </ul>
      </div>      
			<h2 id="basic">Conversi&oacute;n b&aacute;sica</h2>
			<div class="contents">      
        <p>SuperBMD es una herramienta bastante &uacute;til y no muy bien entendida. Uno la usa ciegamente para convertir entre archivos DAE/FBX y BMD/BDL para importar nuevos modelos 3D en SMG. Es el &uacute;nico programa que puede manipular muy efectivamente los archivos BDL de SMG. Y es &eacute;pico. Tiene ciertos comandos que ni s&eacute; para qu&eacute; sirven >:] (<i>mayormente porque me falta experiencia</i>).</p>
        <br>
        <p>Como se vi&oacute; <a href="basic5.html">aqu&iacute;</a> si se arrastra un archivo BMD/BDL a <code>SuperBMD.exe</code> obtendras los contenidos de dicho archivo, sin embargo, estos contenidos no son los originales, son archivos generados por un proceso de conversi&oacute;n que son los que realmente pueden manilarse con otros programas (archivos DAE, PNG y JSON).</p>              
        <img src="../../images/basic6/basic1.jpg" alt="Image could not be loaded.">
        <p class="idtext">Fig. 1: Archivos extra&iacute;dos de <code>Mario.bdl</code>)</p>        
        <ul>
          <li><b>DAE</b> (tambi&eacute;n llamado <b>Collada</b>) contiene informaci&oacute;n del modelo 3D (<b>Fig. 2</b>).</li>
          <li><b>PNGs</b> contendr&aacute;n las texturas usadas en el modelo 3D.</li>
          <li><b>JSONs</b> contendr&aacute;n informaci&oacute;n acerca de las texturas (formato) y materiales usados en el modelo (<b>Figs. 3, 4 and 5</b>).</li>
        </ul>        
        <img src="../../images/basic6/basic2.jpg" alt="Image could not be loaded.">
        <p class="idtext">Fig. 2: <code>Mario.dae</code> abierto en Blender sin sus texturas aplicadas</p>
        <img src="../../images/basic6/basic3.jpg" alt="Image could not be loaded.">
        <p class="idtext">Fig. 3: Archivo JSON de los materiales de <code>Mario.bdl</code> abierto en un editor de texto</p>
        <img src="../../images/basic6/basic4.jpg" alt="Image could not be loaded.">
        <p class="idtext">Fig. 4: Archivo JSON de las texturas de <code>Mario.bdl</code> abierto en un editor de texto</p>
        <img src="../../images/basic6/basic5.jpg" alt="Image could not be loaded.">
        <p class="idtext">Fig. 5: Archivo JSON de la "jerarqu&iacute;a" de elementos en <code>Mario.bdl</code> abierto en un editor de texto</p>
        <p>Los archivos que son estrictamente necesarios para construir un archivo BMD/BDL con SuperBMD son:</p>
        <ul>
          <li>Las texturas usadas en el modelo.</li>
          <li>Un archivo que contenga la informaci&oacute;n 3D del modelo (FBX/DAE).</li>
        </ul>
        <p>Si alguno de esos componentes falta, SuperBMD no podr&aacute; producir un modelo BMD/BDL adecuadamente. Si quieres convertir tu archivo FBX/DAE en BMD s&oacute;lo arrastra el archivo FBX/DAE en <code>SuperBMD.exe</code> (asegurate de tener los archivos de las texturas del modelos en 3D en el mismo lugar que el archivo FBX/DAE). Este proceso resultar&aacute; en un archivo BMD que tendr&aacute; informaci&oacute;n de material/textura <i>predeterminadas</i> (<b>Figs. 6 and 7</b>).</p>        
        <img src="../../images/basic6/basic6.jpg" alt="Image could not be loaded.">
        <p class="idtext">Fig. 6: <code>Mario.bmd</code> creado s&oacute;lo con un archivo DAE + Texturas</p>
        <img src="../../images/basic6/basic7.jpg" alt="Image could not be loaded.">
        <p class="idtext">Fig. 7: <code>Mario.bmd</code> abierto en j3dview</p>        
        <p><b>Notas:</b></p>
        <ul>
          <li>El formato de conversi&oacute;n de SuperBMD es BMD. Para especificarle a SuperBMD que cree un archivo BDL se tiene que usar la opci&oacute;n <code>--bdl</code>: <code>destino\a\SuperBMD.exe destino\a\modelo.[dae/fbx] --bdl</code></li>
          <li>La informaci&oacute;n predeterminada de materiales/texturas est&aacute; definida por los autores.</li>
        </ul>
      </div>
			<h2 id="mat-and-tex">Adici&oacute;n de materiales y texturas</h2>
      <div class="contents">
        <p>Para especificarle a SuperBMD que use informaci&oacute;n de materiales y texturas de archivos JSON se usan las opciones <code>--mat</code> y <code>--texheader</code> respectivamente como sigue (<b>Figs. 8, 9 y 10</b>):</p>
        <div class="code_block">
          <p>camino\a\SuperBMD.exe camino\a\model.[dae/fbx] --mat camino\a\materiales.json --texheader camino\a\texturas.json</p>
        </div>        
        <img src="../../images/basic6/mat-and-tex1.jpg" alt="Image could not be loaded.">
        <p class="idtext">Fig. 8</p>        
        <img src="../../images/basic6/mat-and-tex2.jpg" alt="Image could not be loaded.">
        <p class="idtext">Fig. 9</p>        
        <img src="../../images/basic6/mat-and-tex3.jpg" alt="Image could not be loaded.">
        <p class="idtext">Fig. 10</p>        
        <p>Si los archivos JSON de material/textura no contienen informaci&oacute;n para algun material/textura usado en el modelo 3D, se usar&aacute; la informaci&oacute;n de material/textura predeterminados de SuperBMD.</p>
        <br>
        <p><b>Notas:</b></p>
        <ul>
          <li>Nota como el modelo de la <b>Fig. 10</b> se ve m&aacute;s brillante que el mostrado en la <b>Fig. 7</b> con la informaci&oacute;n de material/textura predeterminados.</li>
          <li>Puedes obtener los datos de material/textura de cualquier material de algun objeto de SMG y usarlo en un modelo que tu quieras. La &uacute;nica advertencia es que copies el bloque de informaci&oacute;n correspondiente correctamente (manteniendo la estructura del archivo JSON <b>Figs. 11, 12 and 13</b>) y/o cambiar el nombre de los materiales/texturas para que correspondan a los que uses en tu modelo 3D.</li>
        </ul>
        <img src="../../images/basic6/mat-and-tex4.jpg" alt="Image could not be loaded.">
        <p class="idtext">Fig. 11: Estructura b&aacute;sica de un archivo JSON</p>        
        <img src="../../images/basic6/mat-and-tex5.jpg" alt="Image could not be loaded.">
        <p class="idtext">Fig. 12: Un bloque de informaci&oacute;n de un material en un archivo JSON</p>     
        <img src="../../images/basic6/mat-and-tex6.jpg" alt="Image could not be loaded.">
        <p class="idtext">Fig. 13: Bloques de informaci&oacute;n de texturas en un archivo JSON</p>
      </div>
			<h2 id="rotate"><code style="font-size: inherit;">--rotate</code></h2>
			<div class="contents">      
        <p>Esta opci&oacute;n es usada para rotar el modelo 3D a lo largo del eje X -90&ordm; para que est&eacute; orientado correctamente en el juego. El prop&oacute;sito de esta opci&oacute;n es para importar modelos 3D de software de modelado en donde el eje que va hacia arriba sea el eje Z (como Blender, <b>Figs. 11, 12 and 13</b>).</p>        
        <img src="../../images/basic6/rotate1.jpg" alt="Image could not be loaded.">
        <p class="idtext">Fig. 14: Modelo ejemplo en Blender)</p>
        <img src="../../images/basic6/rotate2.jpg" alt="Image could not be loaded.">
        <p class="idtext">Fig. 15: Modelo ejemplo en j3dview sin usar <code>--rotate</code></p>
        <img src="../../images/basic6/rotate3.jpg" alt="Image could not be loaded.">
        <p class="idtext">Fig. 16: Modelo ejemplo en j3dview usando <code>--rotate</code></p>
        <p><b>Notas:</b></p>
        <ul>
          <li><code>--rotate</code> es un poco raro en modelos con un esqueleto (las animaciones 3D se muestran como se el modelo no estuviese rotado). En esos casos, s&oacute;lo rota el modelo manualmente -90&ordm; a lo largo del eje X y exportalo as&iacute; para no usar esta opci&oacute;n.</li>
        </ul>
      </div>
			<h2 id="nosort"><code style="font-size: inherit;">--nosort</code></h2>
			<div class="contents">
        <p>Yo usualmente uso esta opci&oacute;n cuando hago modelos. En el pasado, s&oacute;lo unas pocas veces, tuve problemas extra&ntilde;os con la ubicaci&oacute;n de las texturas en alas caras del modelo que intentaba importar y estos efectos "desaparecieron" al usar esta opci&oacute;n. No s&eacute; si esos errores siguen ocurriendo en nuevas versiones pero en caso de que te pase algo similar, puedes intentar usar esta opci&oacute;n (No fu&iacute; capaz de replicar este efecto otra vez as&iacute; que puede que ya no sea un problema).</p>
        <br>
        <p>La descripci&oacute;n que el autor de SuperBMD da para explicar el funcionamiento de esta opci&oacute;n es:</p>
        <p><i>"If <code>--nosort</code> is set, disable naturalistic sorting of meshes by name. (Sorting makes sure so that e.g. mesh-0 appears before mesh-1 in the model)"</i></p>
      </div>
			<h2 id="other-flags">Otras opciones</h2>
			<div class="contents">
        <p>Otras opciones pueden ser vistas en README del repositorio <a href="https://github.com/RenolY2/SuperBMD">GitHub de SuperBMD</a>. Tambi&eacute;n hay opciones regadas en la descripci&oacute;n de cada nueva versi&oacute;n publicada de SuperBMD en la p&aacute;gina <a href="https://github.com/RenolY2/SuperBMD/releases">Releases</a>).</p>
      </div>
			<h2 id="very-bright">El modelo es muy brillante en el juego</h2>
			<div class="contents">
        <p>Desafortunadamente, SuperBMD tiene un problema cuando se crea un modelo BMD/BDL. El problema s&oacute;lo se nota cuando se importa el modelo en SMG y lo que pasa es que el modelo se ve muy brillante en el juego cuando no se supone que se vea as&iacute;. Para evitar el problema, abre el modelo BMD/BDL creado con SuperBMD en j3dview e immediatamente gu&aacute;rdalo como un archivo BDL  (<code>File > Save Model As...</code>, cambia la extensi&oacute;n del archivo para identificar a que formato guardar el modelo).</p>
        <br>
        <p>Ve <a href="https://github.com/RenolY2/SuperBMD/issues/37">este problema</a> para m&aacute;s informaci&oacute;n.</p>
        <br>
        <p><b>Notas:</b></p>
        <ul>
          <li>BDL es una "nueva versi&oacute;n" de los BMD que incorpora una secci&oacute;n m&aacute;s con informaci&oacute;n extra para los materiales. Para m&aacute;s informaci&oacute;n puedes visitar <a href="https://wiki.cloudmodding.com/tww/BMD_and_BDL">este enlace</a>.</p>
        </ul>
      </div>
		</div>
	</body>
</html>
